/* USER CODE BEGIN Header */
/**
  ******************************************************************************
  * @file           : main.h
  * @brief          : Header for main.c file.
  *                   This file contains the common defines of the application.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2024 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */
/* USER CODE END Header */

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __MAIN_H
#define __MAIN_H

#ifdef __cplusplus
extern "C" {
#endif

/* Includes ------------------------------------------------------------------*/
#include "stm32f4xx_hal.h"

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */

/* USER CODE END Includes */

/* Exported types ------------------------------------------------------------*/
/* USER CODE BEGIN ET */

/* USER CODE END ET */

/* Exported constants --------------------------------------------------------*/
/* USER CODE BEGIN EC */

/* USER CODE END EC */

/* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */

/* USER CODE END EM */

/* Exported functions prototypes ---------------------------------------------*/
void Error_Handler(void);

/* USER CODE BEGIN EFP */

/* USER CODE END EFP */

/* Private defines -----------------------------------------------------------*/
#define CTP_SDA_Pin GPIO_PIN_2
#define CTP_SDA_GPIO_Port GPIOE
#define CTP_SCL_Pin GPIO_PIN_3
#define CTP_SCL_GPIO_Port GPIOE
#define CTP_INT_Pin GPIO_PIN_4
#define CTP_INT_GPIO_Port GPIOE
#define CTP_RST_Pin GPIO_PIN_5
#define CTP_RST_GPIO_Port GPIOE
#define OSC32_IN_Pin GPIO_PIN_14
#define OSC32_IN_GPIO_Port GPIOC
#define OSC32_OUT_Pin GPIO_PIN_15
#define OSC32_OUT_GPIO_Port GPIOC
#define LCD_VSYNC_Pin GPIO_PIN_9
#define LCD_VSYNC_GPIO_Port GPIOI
#define LCD_HSYNC_Pin GPIO_PIN_10
#define LCD_HSYNC_GPIO_Port GPIOI
#define FMC_A0_Pin GPIO_PIN_0
#define FMC_A0_GPIO_Port GPIOF
#define FMC_A1_Pin GPIO_PIN_1
#define FMC_A1_GPIO_Port GPIOF
#define FMC_A2_Pin GPIO_PIN_2
#define FMC_A2_GPIO_Port GPIOF
#define FMC_A3_Pin GPIO_PIN_3
#define FMC_A3_GPIO_Port GPIOF
#define FMC_A4_Pin GPIO_PIN_4
#define FMC_A4_GPIO_Port GPIOF
#define FMC_A5_Pin GPIO_PIN_5
#define FMC_A5_GPIO_Port GPIOF
#define LCD_DE_Pin GPIO_PIN_10
#define LCD_DE_GPIO_Port GPIOF
#define OSC_IN_Pin GPIO_PIN_0
#define OSC_IN_GPIO_Port GPIOH
#define OSC_OUT_Pin GPIO_PIN_1
#define OSC_OUT_GPIO_Port GPIOH
#define FMC_SDNWE_Pin GPIO_PIN_0
#define FMC_SDNWE_GPIO_Port GPIOC
#define FMC_SDNE0_Pin GPIO_PIN_2
#define FMC_SDNE0_GPIO_Port GPIOC
#define FMC_SDCKE0_Pin GPIO_PIN_3
#define FMC_SDCKE0_GPIO_Port GPIOC
#define KEY_WAKEUP_Pin GPIO_PIN_0
#define KEY_WAKEUP_GPIO_Port GPIOA
#define KEY_WAKEUP_EXTI_IRQn EXTI0_IRQn
#define UART2_TX_Pin GPIO_PIN_2
#define UART2_TX_GPIO_Port GPIOA
#define UART2_RX_Pin GPIO_PIN_3
#define UART2_RX_GPIO_Port GPIOA
#define BL_PWM_Pin GPIO_PIN_5
#define BL_PWM_GPIO_Port GPIOA
#define TFT_CFG0_Pin GPIO_PIN_0
#define TFT_CFG0_GPIO_Port GPIOB
#define TFT_CFG1_Pin GPIO_PIN_1
#define TFT_CFG1_GPIO_Port GPIOB
#define TFT_CFG2_Pin GPIO_PIN_2
#define TFT_CFG2_GPIO_Port GPIOB
#define FMC_SDNRAS_Pin GPIO_PIN_11
#define FMC_SDNRAS_GPIO_Port GPIOF
#define FMC_A6_Pin GPIO_PIN_12
#define FMC_A6_GPIO_Port GPIOF
#define FMC_A7_Pin GPIO_PIN_13
#define FMC_A7_GPIO_Port GPIOF
#define FMC_A8_Pin GPIO_PIN_14
#define FMC_A8_GPIO_Port GPIOF
#define FMC_A9_Pin GPIO_PIN_15
#define FMC_A9_GPIO_Port GPIOF
#define FMC_A10_Pin GPIO_PIN_0
#define FMC_A10_GPIO_Port GPIOG
#define FMC_A11_Pin GPIO_PIN_1
#define FMC_A11_GPIO_Port GPIOG
#define FMC_D4_Pin GPIO_PIN_7
#define FMC_D4_GPIO_Port GPIOE
#define FMC_D5_Pin GPIO_PIN_8
#define FMC_D5_GPIO_Port GPIOE
#define FMC_D6_Pin GPIO_PIN_9
#define FMC_D6_GPIO_Port GPIOE
#define FMC_D7_Pin GPIO_PIN_10
#define FMC_D7_GPIO_Port GPIOE
#define FMC_D8_Pin GPIO_PIN_11
#define FMC_D8_GPIO_Port GPIOE
#define FMC_D9_Pin GPIO_PIN_12
#define FMC_D9_GPIO_Port GPIOE
#define FMC_D10_Pin GPIO_PIN_13
#define FMC_D10_GPIO_Port GPIOE
#define FMC_D11_Pin GPIO_PIN_14
#define FMC_D11_GPIO_Port GPIOE
#define FMC_D12_Pin GPIO_PIN_15
#define FMC_D12_GPIO_Port GPIOE
#define RGB_PWM_Pin GPIO_PIN_6
#define RGB_PWM_GPIO_Port GPIOH
#define LCD_R3_Pin GPIO_PIN_9
#define LCD_R3_GPIO_Port GPIOH
#define LCD_R4_Pin GPIO_PIN_10
#define LCD_R4_GPIO_Port GPIOH
#define LCD_R5_Pin GPIO_PIN_11
#define LCD_R5_GPIO_Port GPIOH
#define LCD_R6_Pin GPIO_PIN_12
#define LCD_R6_GPIO_Port GPIOH
#define BUZZER_Pin GPIO_PIN_13
#define BUZZER_GPIO_Port GPIOB
#define FMC_D13_Pin GPIO_PIN_8
#define FMC_D13_GPIO_Port GPIOD
#define FMC_D14_Pin GPIO_PIN_9
#define FMC_D14_GPIO_Port GPIOD
#define FMC_D15_Pin GPIO_PIN_10
#define FMC_D15_GPIO_Port GPIOD
#define NAND_CLE_Pin GPIO_PIN_11
#define NAND_CLE_GPIO_Port GPIOD
#define NAND_ALE_Pin GPIO_PIN_12
#define NAND_ALE_GPIO_Port GPIOD
#define FMC_D0_Pin GPIO_PIN_14
#define FMC_D0_GPIO_Port GPIOD
#define FMC_D1_Pin GPIO_PIN_15
#define FMC_D1_GPIO_Port GPIOD
#define FMC_A12_Pin GPIO_PIN_2
#define FMC_A12_GPIO_Port GPIOG
#define FMC_BA0_Pin GPIO_PIN_4
#define FMC_BA0_GPIO_Port GPIOG
#define FMC_BA1_Pin GPIO_PIN_5
#define FMC_BA1_GPIO_Port GPIOG
#define LCD_R7_Pin GPIO_PIN_6
#define LCD_R7_GPIO_Port GPIOG
#define LCD_CLK_Pin GPIO_PIN_7
#define LCD_CLK_GPIO_Port GPIOG
#define FMC_SDCLK_Pin GPIO_PIN_8
#define FMC_SDCLK_GPIO_Port GPIOG
#define USB_PWR_Pin GPIO_PIN_9
#define USB_PWR_GPIO_Port GPIOA
#define USB_FS_DM_Pin GPIO_PIN_11
#define USB_FS_DM_GPIO_Port GPIOA
#define USB_FS_DP_Pin GPIO_PIN_12
#define USB_FS_DP_GPIO_Port GPIOA
#define SWDIO_Pin GPIO_PIN_13
#define SWDIO_GPIO_Port GPIOA
#define LCD_G2_Pin GPIO_PIN_13
#define LCD_G2_GPIO_Port GPIOH
#define LCD_G3_Pin GPIO_PIN_14
#define LCD_G3_GPIO_Port GPIOH
#define LCD_G4_Pin GPIO_PIN_15
#define LCD_G4_GPIO_Port GPIOH
#define LCD_G5_Pin GPIO_PIN_0
#define LCD_G5_GPIO_Port GPIOI
#define LCD_G6_Pin GPIO_PIN_1
#define LCD_G6_GPIO_Port GPIOI
#define LCD_G7_Pin GPIO_PIN_2
#define LCD_G7_GPIO_Port GPIOI
#define SWDCLK_Pin GPIO_PIN_14
#define SWDCLK_GPIO_Port GPIOA
#define UART4_TX_Pin GPIO_PIN_10
#define UART4_TX_GPIO_Port GPIOC
#define UART4_RX_Pin GPIO_PIN_11
#define UART4_RX_GPIO_Port GPIOC
#define UART5_TX_Pin GPIO_PIN_12
#define UART5_TX_GPIO_Port GPIOC
#define FMC_D2_Pin GPIO_PIN_0
#define FMC_D2_GPIO_Port GPIOD
#define FMC_D3_Pin GPIO_PIN_1
#define FMC_D3_GPIO_Port GPIOD
#define UART5_RX_Pin GPIO_PIN_2
#define UART5_RX_GPIO_Port GPIOD
#define UART5_DIR_Pin GPIO_PIN_3
#define UART5_DIR_GPIO_Port GPIOD
#define NAND_NOE_Pin GPIO_PIN_4
#define NAND_NOE_GPIO_Port GPIOD
#define NAND_NWE_Pin GPIO_PIN_5
#define NAND_NWE_GPIO_Port GPIOD
#define NAND_NWAIT_Pin GPIO_PIN_6
#define NAND_NWAIT_GPIO_Port GPIOD
#define NAND_NCE3_Pin GPIO_PIN_9
#define NAND_NCE3_GPIO_Port GPIOG
#define LED_SYS_Pin GPIO_PIN_10
#define LED_SYS_GPIO_Port GPIOG
#define LCD_B3_Pin GPIO_PIN_11
#define LCD_B3_GPIO_Port GPIOG
#define FMC_SDNCAS_Pin GPIO_PIN_15
#define FMC_SDNCAS_GPIO_Port GPIOG
#define FMC_NBL0_Pin GPIO_PIN_0
#define FMC_NBL0_GPIO_Port GPIOE
#define FMC_NBL1_Pin GPIO_PIN_1
#define FMC_NBL1_GPIO_Port GPIOE
#define LCD_B4_Pin GPIO_PIN_4
#define LCD_B4_GPIO_Port GPIOI
#define LCD_B5_Pin GPIO_PIN_5
#define LCD_B5_GPIO_Port GPIOI
#define LCD_B6_Pin GPIO_PIN_6
#define LCD_B6_GPIO_Port GPIOI
#define LCD_B7_Pin GPIO_PIN_7
#define LCD_B7_GPIO_Port GPIOI

/* USER CODE BEGIN Private defines */

/* USER CODE END Private defines */

#ifdef __cplusplus
}
#endif

#endif /* __MAIN_H */
